package com.zxw.设计模式.结构型.代理模式.CGLIB代理;

import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.zxw.设计模式.结构型.代理模式.CGLIB代理.domain.User;
import com.zxw.设计模式.结构型.代理模式.CGLIB代理.impl.UserServiceImpl;
import com.zxw.设计模式.结构型.代理模式.CGLIB代理.proxy.ProxyFactory;

import java.util.List;

/**
 * @projectName: util-cloud
 * @package: com.zxw.设计模式.结构型.代理模式.CGLIB代理
 * @className: DynamicProxyTest
 * @author: zhangxuewei
 * @description: TODO
 * @date: 2023/6/17 16:17
 * @version: 1.0
 */
public class DynamicProxyTest {

    public static void main(String[] args) {
        UserServiceImpl userService = new UserServiceImpl();
        System.out.println(userService.getClass());
        UserServiceImpl proxy = (UserServiceImpl) new ProxyFactory(userService).getLogProxy();
        System.out.println("代理类 " + proxy.getClass());
        List<User> users = proxy.getUserList(3);
        System.out.println(JSONUtil.toJsonStr(users));
    }

}
